Visual Basic - horas > 24

Life is soft - evento anual de software empresarial
 
Vista:

horas > 24

Publicado por hayde (13 intervenciones) el 06/08/2005 01:05:12
hola. gracias por leer y por la ayuda.
en visual sumo horas asi. format(timevalue(hext1)+timevalue(hext2),"hh:mm") y me va sumando horas perfecto hasta que llego a 24 horas y se regresa a 1. la suma podria darme por ejemplo 50:45 como hago pa q se vayan acumulando. son guardados los datos en access
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:horas > 24

Publicado por ivan ramírez (463 intervenciones) el 06/08/2005 01:41:11
Verifique la suma de 2 horas como tu lo haces y en caso de que la suma supere las 24 el resultado lo pone como "siguiente día", por ejemplo si sumo

15:00 + 15:00 = 6:00:00 am

entonces lo que creo que tienes que hacer es usar las funciones HOUR y MINUTE para que POR SEPARADO sumes las horas y tus minutos y tal vez segundos, así ya con algún algoritmo ideado por tí condiciona que si la suma de minutos es superior a 60 entonces le agregas una hora mas y si la suma de horas es mayor que 24 entonces significa que ya pasó otro día...

Es la solución que más se me ocurre, otra forma yo la desconozco....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

RE:horas > 24

Publicado por Ariel (94 intervenciones) el 09/08/2005 16:50:51
Hola

mira una vez tuve q hacer algo similar
los datos q son de tipo hora > 24, use un dato tipo String

aqui esta la funcion q hice.

Esta función suma dos horas
las horas las paso a minutos para poder sumar todo y al final los minutos
los paso a HH:mm
esta función no esta con segundos puesto a q no necesitaba los segundos.
pero tu eres programador y la puedes modificar para sumar tambien los segundos.

Espero les Sirva.

Function SumaHoras(Hora1 As String, Hora2 As String) As String
Dim H1 As Long
Dim H2 As Long
Dim M1 As Integer
Dim M2 As Integer
Dim P As Integer
Dim P2 As Integer
Dim Hf As Long
Dim Mf As Long

P = InStr(1, Hora1, ":") ' guardo la posicion del ":" de la hora 1
P2 = InStr(1, Hora2, ":") ' guardo la posicion del ":" de la hora 2

H1 = Mid(Hora1, 1, P - 1) 'tomo la hora 1
H2 = Mid(Hora2, 1, P2 - 1) 'tomo la hora 2

M1 = Mid(Hora1, P + 1, Len(Hora1)) ' tomo los seg. de la hora 1
M2 = Mid(Hora2, P2 + 1, Len(Hora2))' tomo los seg. de la hora 2

Hf = (H1 + H2)' sumo las horas
Hf = Hf * 60 ' paso las horas a minutos
Mf = M1 + M2 ' sumo los minutos

Mf = Hf + Mf ' sumo el total minutos
Hf = Fix(Mf / 60) ' obtengo las horas totales de las horas
Mf = Mf - (Hf * 60) ' obtengo los minutos

' finalmente muestro el formato HH:mm
SumaHoras = Format(Hf, "0#") & ":" & Format(Mf, "00")
'ojo de esta forma podemos mostrar horas como por ejemplo:

300:56
879:36
etc..

End Function

Saludos a todos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:horas > 24

Publicado por Guido (2 intervenciones) el 11/07/2017 17:19:45
Hola Ariel..
Muy buen dato!..
Podría alguien darme una idea de cómo solucionar un problema similar que tengo con el formato de Horas que es mayor a 24hs..
Les explico:
Yo tengo una plantilla excel con las personas que participan de una capacitación, y allí tengo las horas que están presentes en el mes, entonces tengo un total de horas mensual que generalmente alcanza las 180:00:00, 251:45:00 horas, hasta hay todo bien porque el excel hace los cálculos totales.
Ahora esto datos tengo que exportar a una grilla (MSFlexGrid) de vb6 para luego guardarlo en una tabla de Access.
El tema el cuando exportó los totales de horas a la grilla no me cargan como tal, si no que me carga valores como 1,666654, 2,67373888, y asi.
En el proceso uso in bucle para cargar los datos y uso el siguiente proceso:
.TextMatrix(i, n) = obj_Worksheet.Cells(i, n).Value

Alguna idea para que los totales de horas me cargue tal ccomo son??
MIl gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar